home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / enlightenment / e_dnd.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  3KB  |  137 lines

  1. /*
  2.  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  3.  */
  4.  
  5. #ifdef E_TYPEDEFS
  6.  
  7. typedef enum   _E_Drag_Type        E_Drag_Type;
  8.  
  9. typedef struct _E_Drag             E_Drag;
  10. typedef struct _E_Drop_Handler     E_Drop_Handler;
  11. typedef struct _E_Event_Dnd_Enter  E_Event_Dnd_Enter;
  12. typedef struct _E_Event_Dnd_Move   E_Event_Dnd_Move;
  13. typedef struct _E_Event_Dnd_Leave  E_Event_Dnd_Leave;
  14. typedef struct _E_Event_Dnd_Drop   E_Event_Dnd_Drop;
  15.  
  16. #else
  17. #ifndef E_DND_H
  18. #define E_DND_H
  19.  
  20. #define E_DRAG_TYPE 0xE0b0100f
  21.  
  22. enum _E_Drag_Type
  23. {
  24.    E_DRAG_NONE,
  25.    E_DRAG_INTERNAL,
  26.    E_DRAG_XDND
  27. };
  28.  
  29. struct _E_Drag
  30. {
  31.    E_Object             e_obj_inherit;
  32.  
  33.    char         **types;
  34.    unsigned int   num_types;
  35.    void          *data;
  36.    int            data_size;
  37.  
  38.    E_Drag_Type    type;
  39.  
  40.    struct {
  41.     void (*finished)(E_Drag *drag, int dropped);
  42.    } cb;
  43.  
  44.    E_Container       *container;
  45.    Ecore_Evas        *ecore_evas;
  46.    Evas              *evas;
  47.    Ecore_X_Window     evas_win;
  48.    E_Container_Shape *shape;
  49.    Evas_Object       *object;
  50.  
  51.    int x, y, w, h;
  52.    int dx, dy;
  53.  
  54.    int shape_rects_num;
  55.    Ecore_X_Rectangle *shape_rects;
  56.    
  57.    unsigned int   layer;
  58.    unsigned char  visible : 1;
  59.    unsigned char  need_shape_export : 1;
  60. };
  61.  
  62. struct _E_Drop_Handler
  63. {
  64.    struct {
  65.     void (*enter)(void *data, const char *type, void *event);
  66.     void (*move)(void *data, const char *type, void *event);
  67.     void (*leave)(void *data, const char *type, void *event);
  68.     void (*drop)(void *data, const char *type, void *event);
  69.     void *data;
  70.    } cb;
  71.  
  72.    char         **types;
  73.    unsigned int   num_types;
  74.  
  75.    int x, y, w, h;
  76.    unsigned char active : 1;
  77.    unsigned char entered : 1;
  78. };
  79.  
  80. struct _E_Event_Dnd_Enter
  81. {
  82.    int x, y;
  83. };
  84.  
  85. struct _E_Event_Dnd_Move
  86. {
  87.    int x, y;
  88. };
  89.  
  90. struct _E_Event_Dnd_Leave
  91. {
  92.    int x, y;
  93. };
  94.  
  95. struct _E_Event_Dnd_Drop
  96. {
  97.    void *data;
  98.    int x, y;
  99. };
  100.  
  101. EAPI int  e_dnd_init(void);
  102. EAPI int  e_dnd_shutdown(void);
  103.  
  104. EAPI int  e_dnd_active(void);
  105.  
  106. /* x and y are the top left coords of the object that is to be dragged */
  107. EAPI E_Drag *e_drag_new(E_Container *container, int x, int y,
  108.             const char **types, unsigned int num_types,
  109.             void *data, int size,
  110.             void (*finished_cb)(E_Drag *drag, int dropped));
  111. EAPI Evas   *e_drag_evas_get(E_Drag *drag);
  112. EAPI void    e_drag_object_set(E_Drag *drag, Evas_Object *object);
  113. EAPI void    e_drag_resize(E_Drag *drag, int w, int h);
  114. EAPI void    e_drag_idler_before(void);
  115.  
  116. /* x and y are the coords where the mouse is when dragging starts */
  117. EAPI int  e_drag_start(E_Drag *drag, int x, int y);
  118. EAPI int  e_drag_xdnd_start(E_Drag *drag, int x, int y);
  119.  
  120. EAPI E_Drop_Handler *e_drop_handler_add(void *data,
  121.                     void (*enter_cb)(void *data, const char *type, void *event),
  122.                     void (*move_cb)(void *data, const char *type, void *event),
  123.                     void (*leave_cb)(void *data, const char *type, void *event),
  124.                     void (*drop_cb)(void *data, const char *type, void *event),
  125.                            const char **types, unsigned int num_types,
  126.                     int x, int y, int w, int h);
  127. EAPI void e_drop_handler_geometry_set(E_Drop_Handler *handler, int x, int y, int w, int h);
  128. EAPI void e_drop_handler_del(E_Drop_Handler *handler);
  129.  
  130. #endif
  131. #endif
  132.  
  133. #ifndef MIN
  134. #define MIN(x, y) (((x) > (y)) ? (y) : (x))
  135. #endif
  136.  
  137.